package main

import (
	"fmt"
	"jianianhua-server/database"
	"jianianhua-server/models"
	"jianianhua-server/services"
	"log"
	"os"

	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

func main() {
	// 数据库连接配置
	dsn := "root:password@tcp(localhost:3306)/jianianhua?charset=utf8mb4&parseTime=True&loc=Local"
	
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		log.Fatal("数据库连接失败:", err)
	}

	// 设置数据库实例
	database.DB = db

	// 创建角色服务
	roleService := services.NewRoleService()

	// 获取命令行参数
	if len(os.Args) < 2 {
		fmt.Println("用法: go run set_admin.go <phone_number>")
		fmt.Println("示例: go run set_admin.go 18249606870")
		return
	}

	phone := os.Args[1]

	// 查找用户
	var user models.User
	err = db.Where("phone = ?", phone).First(&user).Error
	if err != nil {
		if err == gorm.ErrRecordNotFound {
			fmt.Printf("用户 %s 不存在\n", phone)
		} else {
			log.Fatal("查找用户失败:", err)
		}
		return
	}

	// 设置为管理员
	err = roleService.PromoteToAdmin(user.ID)
	if err != nil {
		log.Fatal("设置管理员失败:", err)
	}

	fmt.Printf("用户 %s (%s) 已设置为管理员\n", user.Nickname, user.Phone)
}
